Software piracy is a worldwide problem that costs software vendors large sums of money every year. One form of piracy, known as casual copying, is sharing and installing software on multiple computers, in violation of the end user license agreement. Product activation is one way to reduce this type of piracy.
Product activation commonly relies on the submission of an installation identification code and/or a hardware identifier to the software vendor. The software vendor in response returns an activation confirmation code. In a typical retail application of product activation, a unique product key is provided with each package of boxed software. Typically, during or after some grace period, (a period of time after installation of software during which the software will run without being activated), a customer must contact the software vendor to activate his or her copy of the software. Failure to do so frequently results in deactivation of the software or in degraded functionality of the software. Typically, the unique product key is used to generate a unique product identification code, which may be combined with a hashed hardware-related value to generate an installation identification code that is specific to the machine on which the software runs. An activation confirmation that enables the software to run is typically returned to the customer. In this regard, an activation confirmation can also be a license file, or a binary that represents a license. At each login the licensed software checks to see that it is running on essentially the same hardware on which it was activated. If the check fails, reactivation is required before the software will run again.
Corporate customers commonly purchase a volume license, because it is not feasible for corporate customers—who may have hundreds or thousands of machines in their domain—to contact the software vendor for each software copy installed to receive a machine-specific activation code. Typically, therefore, holders of volume licenses do not have to contact the software vendor to activate their software, because the software bypasses the activation requirement when a volume license key is detected. This is known as a “product activation bypass.” Hence, the same volume license key can be used on many different computers, none of which require activation in order for the software to run, before or after the grace period has expired. Although this feature makes volume license keys more convenient for a corporate customer to install software, it is also an attractive target for piracy. For example, pirates obtain legitimate volume licensing media and buy or steal valid volume licensing product keys. The media and product keys are repurposed and sold to unsuspecting customers in a scheme known as “business to consumer” channel piracy.
Thus, there is a need for a mechanism for deterring piracy in a networked computing environment without unduly burdening legitimate customers with cumbersome anti-piracy requirements. The present invention satisfies this need.